package com.mixsmart.core.enums;

import com.mixsmart.utils.StringUtils;

/**
 * 数据格式类型
 * @author lmq
 * @version 1.0
 * @since JDK版本大于等于1.6
 * 2016年2月1日
 */
public enum DataFormatType {
	
	/**
	 * 数字（包括小数）格式
	 */
	NUM(0,"num"),
	/**
	 * 小数格式
	 */
	DECIMAL(1,"decimal"),
	/**
	 * 整数格式
	 */
	INTEGER(2,"integer"),
	/**
	 * IP地址格式
	 */
	IP(3,"ip"),
	/**
	 * email地址格式
	 */
	EMAIL(4,"email"),
	/**
	 * 手机号码格式
	 */
	MOBILE_PHONE(5,"mobile_phone"),
	/**
	 * 固定电话格式
	 */
	FIXED_TELPHONE(6,"fixed_telephone"),
	/**
	 * 中文格式
	 */
	CHINESE(7,"chinese"),
	/**
	 * QQ格式
	 */
	QQ(8,"qq"),
	/**
	 * 身份证号格式
	 */
	CARD_NO(10,"card_no"),
	/**
	 * 文本格式
	 */
	TEXT(11,"text");
	
	private String value;
	private int index;
	
	/**
	 * 
	 * @param index
	 * @param value
	 */
	private DataFormatType(int index,String value) {
		this.value = value;
		this.index = index;
	}
	
	/**
	 * 根据 <code>index</code> 获取数据格式类型对象
	 * @param index 索引值
	 * @return 返回数据格式类型对象
	 */
	public DataFormatType getObj(int index) {
		DataFormatType dataFormatType = null;
		for(DataFormatType type : DataFormatType.values()) {
			if(type.getIndex() == index) {
				dataFormatType = type;
				break;
			}
		}
		return dataFormatType;
	}
	
	/**
	 * 根据 <code>value</code> 获取数据格式类型对象
	 * @param value 数据格式类型值
	 * @return 返回数据格式类型对象
	 */
	public DataFormatType getObj(String value) {
		DataFormatType dataFormatType = null;
		if(StringUtils.isEmpty(value)) {
			return dataFormatType;
		}
		for(DataFormatType type : DataFormatType.values()) {
			if(type.getValue().equals(value)) {
				dataFormatType = type;
				break;
			}
		}
		return dataFormatType;
	}

	public String getValue() {
		return value;
	}

	public void setValue(String value) {
		this.value = value;
	}

	public int getIndex() {
		return index;
	}

	public void setIndex(int index) {
		this.index = index;
	}
	
}
